package com.wuchao.utils;

import com.wuchao.entity.Menu;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @Author wuchao66
 * @Date 2023/12/14 15:23
 * @PackageName:com.wuchao.utils
 * @ClassName: MenuTreeBuilder
 * @Description: TODO
 * @Param
 * @Version 1.0
 */
public class MenuTreeBuilder {
    public static List<Menu> findMenuTree(List<Menu> menus) {
        //原始集合到位
        //定义一个接受最终所有的集合
        List<Menu> menulist=new ArrayList<>();
        //先找第一组父亲
        for(Menu xjj : menus){
            if(xjj!=null&&xjj.getParentId()==0){
                //这些就是最大的父亲
                menulist.add(xjj);//1
            }
        }
        //开始递归
        for(Menu xjj : menulist){
            xjj.setChildMenus(getChildrenList(xjj.getId(),menus));
        }
        return menulist;
    }
    public static List<Menu> getChildrenList(long id,  List<Menu> menus ) {
        //判断2层孩子
        List<Menu> childrenList = new ArrayList<>();
        for(Menu xjj : menus){//送1 来找的4
            if(xjj!=null&&xjj.getParentId()==id&&xjj.getType().equals("0")){
                //这些就是最大的父亲
                childrenList.add(xjj);//2层到位4
            }
        }
        for(Menu xjj : childrenList){//送4   去找9
            if(xjj!=null){
                xjj.setChildMenus(getChildrenList(xjj.getId(), menus));
            }
        }
        if(childrenList.size()==0){
            return  null;
        }
        //排序
        Collections.sort(childrenList, Menu.order());
        return childrenList;
    }
}
